package org.flashbrighton.as3bots.logic
{
	import org.flashbrighton.as3bots.events.BotEvent;
	
	public interface IBotLogic
	{
		/**
		 * The 'thinking' code for the bot.
		 * Code here is run every frame.
		 */
		function run():void;
		
		/**
		 * Used by the game to let the bot know
		 * when it has hit something.
		 * Reactions to these events should be
		 * placed in this method.
		 */
		function notify(event:BotEvent):void;
		
		/**
		 * The engine value on request by the bot
		 * (between -1 and 1).
		 * A positive value lets the game know the 
		 * bot wants to move forward, backwards
		 * if a negative value.
		 */
		function get enginePercent():Number;
		
		/**
		 * The rotation value on request by the bot
		 * (between -1 and 1).
		 * A positive value lets the game know the 
		 * bot wants to rotate clockwise, anti-clockwise 
		 * if a negative value.
		 */
		function get rotatorPercent():Number;
	}
}